home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 22
/
Cream of the Crop 22.iso
/
program
/
euphor14.zip
/
TROUBLE.DOC
< prev
next >
Wrap
Text File
|
1996-05-20
|
5KB
|
120 lines
Euphoria Trouble-Shooting Guide
-------------------------------
Here are some commonly reported problems (P:) and their
solutions (S:).
P: I'm having trouble running a graphics program. I hit control-break
and now my system seems to be dead.
S: Some graphics programs will not run unless you start them from DOS or from a
full-screen window under Windows. Sometimes you have to edit the program
source to use a lower resolution graphics mode, such as mode 18.
You should stop a program using the method that the program documentation
recommends. If you abort a program with control-C or control-Break you may
find that your screen is left in a funny graphics mode using funny colors.
When you type something, it may be difficult or even impossible to read
what you are typing. The system may even appear dead, when in fact it is
not.
Try the following DOS commands, in the following order, until you
clear things up:
1. type: cls
Even when you can't see any keystrokes echoed on the screen
this may clear the screen for you.
2. type: ex
The Euphoria interpreter will try to restore a normal text
mode screen for you.
3. type: exit
If you are running under Windows, this will terminate the
DOS session for you.
4. type: Control-Alt-Delete
This will let you kill the current DOS session under Windows,
or will soft-reboot your computer if you are running under
DOS.
5. If all else fails, power your computer off and back on.
You should immediately run SCANDISK or CHKDSK when
the system comes back up.
P: When I run my program there are no errors but nothing
happens.
S: You probably forgot to call your main procedure. You need
a top-level statement that comes after your main procedure
to call the main procedure and start execution.
P: I'm trying to call a routine documented in library.doc, but it keeps
saying the routine has not been declared.
S: Did you remember to include the necessary .e file from the
euphoria\include directory? If the syntax of the routine says
for example, "include graphics.e", then your program must have
"include graphics.e" (without the quotes) before the place where you
first call the routine.
P: I have an include file with a routine in it that I want to call,
but when I try to call the routine it says the routine has not
been declared. But it *has* been declared.
S: Did you remember to define the routine with "global" in front
of it in the include file? Without "global" the routine is
not visible outside of its own file.
P: After inputting a string from the user with gets(), the next line that
comes out on the screen does not start at the left margin.
S: Your program should output a new-line character
e.g. puts(SCREEN, '\n') after you do a gets(). It does
not happen automatically.
P: It says I'm attempting to redefine my for-loop variable.
S: For-loop variables are declared automatically. Apparently you
already have a declaration with the same name earlier in
your routine or your program. Remove that earlier declaration
or change the name of your loop variable.
P: I get the message "unknown escape character" on a line where I am
trying to specify a file name.
S: *Do not* say "C:\TMP\MYFILE". You need to say "C:\\TMP\\MYFILE".
Backslash is used for escape characters such as \n or \t.
To specify a single backslash in a string you need to type \\.
P: I'm trying to use mouse input in a SVGA graphics mode but it just
doesn't work.
S: DOS does not support mouse input in modes beyond graphics mode 18
(640x480 16 color). DOS 7.0 (part of Windows 95) does seem to let
you at least read the x-y coordinate and the buttons in high
resolution modes, but you may have to draw your own mouse pointer
in the high-res modes.
P: I'm trying to print a string using printf but only the first
character comes out.
S: See the printf description in library.doc. You may need to put
braces around your string so it is seen as a single value to
be printed, e.g. you wrote:
printf(1, "Hello %s", mystring)
where you should have said:
printf(1, "Hello %s", {mystring})
P: It complains about my routine declaration, saying "a type is expected here".
S: When declaring subroutine parameters, Euphoria requires you
provide an explicit type for each parameter. e.g.
procedure foo(integer x, y) -- WRONG
procedure foo(integer x, integer y) -- RIGHT
In all other contexts it is ok to make a list:
atom a, b, c, d, e
P: I'm declaring some variables in the middle of a routine and it gives
me a syntax error.
S: All of your private variable declarations must come at the beginning
of your subroutine, before any executable statements. (Note that at the
top-level of a program, outside of any routine, it is ok to declare
variables anywhere.)